﻿using System;
using System.IO;
using WebMoney.WMSignerFX.KeysExtractor.Properties;

namespace WebMoney.WMSignerFX.KeysExtractor.Utils
{
    internal static class ReadFile
    {
        private const int KEY_LEN = 164;

        /// <summary>
        /// Чтение файла в байтовый массив
        /// </summary>
        /// <param name="fileName">Имя файла</param>
        /// <returns>Файл в виде байтового массива</returns>
        internal static byte[] ReadFromName(string fileName)
        {
            if (string.IsNullOrEmpty(fileName))
                return null;

            FileInfo fileInfo;

            try
            {
                fileInfo = new FileInfo(fileName);
            }
            catch(Exception)
            {
                return null;
            }

            if (KEY_LEN != fileInfo.Length)
                throw new ArgumentException(Resources.InvalidFile);

            FileStream fStream = null;
            byte[] result = new byte[KEY_LEN];

            try
            {
                fStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                fStream.Read(result, 0, KEY_LEN);
            }
            finally
            {
                if (null != fStream)
                    fStream.Close();
            }

            return result;
        }
    }
}